Imports System

Public Class Product

    'Private fields
    Private _productId As Integer
    Private _title As String
    Private _description As String
    Private _quantityOnHand As Integer
    Private _price As Double
    Private _releaseDate As DateTime
    Private _createdOn As DateTime
    Private _createdBy As String
    Private _modifiedOn As DateTime
    Private _modifiedBy As String
    Private _isDeleted As Boolean

    ' Primary key 
    Public Property ProductId() As Integer
        Get
            Return Me._productId
        End Get
        Set(ByVal value As Integer)
            Me._productId = value
        End Set
    End Property

    ' Data members 
    Public Property Title() As String
        Get
            Return Me._title
        End Get
        Set(ByVal value As String)
            Me._title = value
        End Set
    End Property

    Public Property Description() As String
        Get
            Return Me._description
        End Get
        Set(ByVal value As String)
            Me._description = value
        End Set
    End Property

    Public Property QuantityOnHand() As Integer
        Get
            Return Me._quantityOnHand
        End Get
        Set(ByVal value As Integer)
            Me._quantityOnHand = value
        End Set
    End Property

    Public Property Price() As Double
        Get
            Return Me._price
        End Get
        Set(ByVal value As Double)
            Me._price = value
        End Set
    End Property

    Public Property ReleaseDate() As DateTime
        Get
            Return Me._releaseDate
        End Get
        Set(ByVal value As DateTime)
            Me._releaseDate = value
        End Set
    End Property

    ' Audit members 
    Public Property CreatedOn() As DateTime
        Get
            Return Me._createdOn
        End Get
        Set(ByVal value As DateTime)
            Me._createdOn = value
        End Set
    End Property

    Public Property CreatedBy() As String
        Get
            Return Me._createdBy
        End Get
        Set(ByVal value As String)
            Me._createdBy = value
        End Set
    End Property

    Public Property ModifiedOn() As DateTime
        Get
            Return Me._modifiedOn
        End Get
        Set(ByVal value As DateTime)
            Me._modifiedOn = value
        End Set
    End Property

    Public Property ModifiedBy() As String
        Get
            Return Me._modifiedBy
        End Get
        Set(ByVal value As String)
            Me._modifiedBy = value
        End Set
    End Property

    Public Property IsDeleted() As Boolean
        Get
            Return Me._isDeleted
        End Get
        Set(ByVal value As Boolean)
            Me._isDeleted = value
        End Set
    End Property

End Class